The following relates generally to the field of document management and more particularly to methods, and apparatus therefor, for generating instances of documents using a component-based model.
Generally, the use of components as building blocks for developing an assorted number of products is known. For example, component-based design and fabrication of hardware and software systems allows the combination of component parts to be formulated in different ways. One feature of hardware and software component-based design and fabrication is the use of a common interface to allow alternate pluggable units. For example, two components may provide the same function through a common interface but do so using a different configuration or component parts (e.g., more memory, faster processor, etc.).
Further, defining and using components as building blocks for documents is also known. The development of modular and dynamic documents can be carried out using hypertext systems to establish relationships between document parts using hyperlinks, or dynamic content management system (e.g., Active Server Pages, PHP, or XSLT) that provide ways to handle dynamic information via queries inserted into documents. Further, dynamic documents may be produced using transformation mechanisms that may be used to transform documents in one form to another (e.g., transforming an XML document that follows one style sheet or document type definition (DTD) to create another XML document that follows another style sheet or DTD).
One disadvantage with known hypertext systems is that they are tightly coupled, with links pointing to specific documents; that is, if a document is added or removed in a collection, the links that are present in other documents will not be updated to reflect the change. Some hypertext systems only define one link traversal operation (i.e., “load document”), while other hypertext systems provide other traversal operations such as inclusion. In contrast, one disadvantage with dynamic content management systems is that such systems rely on executing queries to a database on a server, thereby requiring information to be centralized in such a database for the system to operate.
Accordingly, there exists a continued need for improved systems that dynamically render documents using a component-based model which addresses these and other shortcomings. Advantageously, such improved systems would permit the re-combination of document components while not relying on a centralized service. Further, such improved systems would advantageously operate with document components that contain sufficient embedded information and processing capabilities to permit independent (i.e., distributed and self-contained) re-combination, thereby allowing the possibility of re-combining the same instance of a document at various independent locations using different sets of components.
In accordance with the various embodiment set forth herein, there is provided a document management system for combining document components in different ways. That is generally, there is provided a method for defining, producing, and using re-combinable document components. A re-combinable document is defined herein as a component-based document that may be rendered in many different forms, where components of the document may cause the combination of other components. Combinations of components may be chosen based on various criteria and the composition (i.e., rendering) of a document may be performed either statically or dynamically, in order to adapt to a new context.
Advantageously, the document management system may be used to manage the documentation of physical objects that consist of a large number of components, where each individual object may be composed of one of a plurality of combinations of components, and where the constituent components and their sub-components may evolve and reconfigure in time. Further, the document management system advantageously takes into account component dependencies (i.e., where the addition, removal, or replacement of one component may influence the documentation of other components), while at the same time the system maintains a loose coupling between document parts (i.e., a document with little or no direct dependencies between components is referred to herein as being “loosely coupled”).
By applying the various methods described herein to combine, document components, a rendered document is created that includes a unique set of selected document components, each one of which may be adapted according to the other document components. That is, the various methods permit automatic adaptation of a document component according to the context in which it is used. Further, the various methods may rely on linguistic processing to refine and correct the textual content of the rendered document, for example, by verifying agreement related to number and gender for nouns, and person and tense for verbs.
In accordance with one aspect of the various methods described herein, document components define variable data by exporting one or more anchor points to which other document components may reference. In accordance with this and other aspects, document components explicitly declare interfaces that specify what they describe in accordance with an agreed terminology, and provide various de-referencing operations to transform a reference into a unidirectional hyperlink, or to permit the inclusion of document content. Such de-referencing can advantageously be controlled and conditioned depending on the context in which each document component is used. In accordance with further aspects of the various methods described herein, a composition model and composition template control the construction of an instance of a rendered document using a set of document components, while maintaining a loose coupling between document components through reference lookup functions exported through their interfaces.
In accordance with yet another aspect of the methods described herein, physical systems or articles are equipped with smart tags, which contain information for processing or supporting the automatic reconfiguration of related documents in accordance with the methods described herein. Advantageously, this aspect permits documentation to be automatically updated to reflect new configurations of component-based physical objects (e.g., in the event a component part is added, removed or exchanged, the documentation will be automatically updated to reflect the new configuration of the object).
In accordance with yet further aspects of the methods described herein, there is provided a method for generating instances of documents that includes: defining a container with a set of document components; defining a composition template that specifies one or more unresolved elements; defining a composition model that specifies a set of all possible facets that may be used to render the composition template; using the composition model to bind the unresolved elements in the composition template with the set of document components in the container; producing different instances of a rendered document by (i) altering the set of document components in the container and (ii) using the composition model to re-bind the unresolved elements in the composition template with the document components in the altered set of document components in the container.